package com.company.cloud.user.modules.mgr.controller.req;

import com.company.cloud.common.bean.BaseParam;
import com.company.cloud.user.constant.InviteCheckTypeEnum;
import com.company.cloud.user.constant.InviteTypeEnum;
import com.company.cloud.user.modules.api.constant.UserOneSourceEnum;
import com.company.cloud.user.modules.api.constant.UserOneTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotEmpty;
import java.time.LocalDateTime;

@Getter
@Setter
public class UserInvitationSaveParam extends BaseParam{

    @ApiModelProperty(value = "用户一级分类[UserOneTypeEnum] 1员工 2客户", required = true)
    @NotEmpty(message = "用户分类不能为空")
    private String userTypeOne = UserOneTypeEnum.Customer_User.getCode();

    @ApiModelProperty(value = "用户二级分类")
    private String userTypeTwo;

    @ApiModelProperty(value = "用户一级来源[UserOneSourceEnum] 1自动注册 2后台新增",required = true)
    @NotEmpty(message = "用户一级来源不能为空")
    private String sourceOne= UserOneSourceEnum.Admin_Reg.getCode();

    @ApiModelProperty(value = "用户二级来源")
    private String sourceTwo;

    @ApiModelProperty(value = "用户昵称")
    private String nickName;

    @ApiModelProperty(value = "真实姓名")
    private String realName;

    @ApiModelProperty(value = "用户头像")
    private String headImg;

    @ApiModelProperty(value = "国家编号")
    private String nationCode;

    @ApiModelProperty(value = "手机号")
    private String mobile;

    @ApiModelProperty(value = "电话")
    private String tel;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "QQ")
    private String qq;

    @ApiModelProperty(value = "岗位编号")
    private String jobCode;

    @ApiModelProperty(value = "部门ID")
    private Integer deptId;

    @ApiModelProperty(value = "是否部门负责人(YN)")
    private String isDeptManager;

    @ApiModelProperty(value = "数据权限分类(1全部部门 2自己 3指定部门)")
    private String dataAuthorityType;

    @ApiModelProperty(value = "数据权限范围")
    private String dataAuthorityScope;

    @ApiModelProperty(value = "用户标签")
    private String userTags;

    @ApiModelProperty(value = "用户角色")
    private String userRoles;

    @ApiModelProperty(value = "邀请方式 1:普通邀请 2:团队邀请",required = true)
    @NotEmpty(message = "邀请方式不能为空")
    private String invitationType = InviteTypeEnum.EMPLOYEE.getCode();

    @ApiModelProperty(value = "邀请团队ID")
    private Integer teamId;

    @ApiModelProperty(value = "被邀请人ID")
    private Integer invitationUserId;

    @ApiModelProperty(value = "邀请验证方式 1手机验证 2密码验证", required = true)
    @NotEmpty(message = "邀请验证方式不能为空")
    private String checkType= InviteCheckTypeEnum.Mobile_Check.getCode();

    @ApiModelProperty(value = "邀请验证手机号")
    private String checkMobile;

    @ApiModelProperty(value = "邀请过期时间[yyyy-MM-dd]")
    private LocalDateTime overDate;
}
